Component({
  properties: {
    output: {
      type: String,
      value: 0
    }
  },
  data: {},
  methods: {
    bindNum(e) {
      let {
        output
      } = this.data
      const {
        text
      } = e.currentTarget.dataset
      if (output === '0') {
        if ("0123456789".indexOf(text) >= 0) {
          this.setData({
            output: text
          })
        } else {
          this.setData({
            output: output += text
          })
        }
        return;
      }
      if (output.indexOf(".") >= 0 && text === ".") {
        return;
      }
      if (output.length >= 16) {
        return;
      }
      this.setData({
        output: this.data.output += text
      })
    },
    remove() {
      let {
        output
      } = this.data
      if (output.length === 1) {
        this.setData({
          output: '0'
        })
      } else {
        this.setData({
          output: output.slice(0, -1)
        })
      }
    },
    reset() {
      this.setData({
        output: '0'
      })
    },
    ok() {
      const
        output = parseFloat(this.data.output)
      this.triggerEvent('updateValue', {
        output
      })
      this.setData({
        output: '0'
      })
    }
  }
})